package com.fy.common.entity;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * sk_im_group
 * @author zhshuo
 */
@Data
@Accessors(chain = true)
@ApiModel(value="generator.SkImGroup群组信息")
public class SkImGroup implements Serializable {

    @TableId(type = IdType.ID_WORKER)
    private Long id;

    private String name;

    /**
     * 群说明
     */
    @ApiModelProperty(value="群说明")
    private String desc;

    /**
     * 头像
     */
    @ApiModelProperty(value="头像")
    private String avatar;

    /**
     * 成员数
     */
    @ApiModelProperty(value="成员数")
    private Integer memberCount;

    /**
     * 群类型;普通群 加密群
     */
    @ApiModelProperty(value="群类型;普通群 加密群")
    private Integer type;

    /**
     * 状态;正常 封禁 删除
     */
    @ApiModelProperty(value="状态;0正常 1封禁 2 以解散 -1删除")
    private Integer status;

    /**
     * 是否允许加入;true 允许 false 不允许
     */
    @ApiModelProperty(value="是否允许加入;true 允许 false 不允许")
    private Boolean allowJoin;

    /**
     * 加群方式;1 审核加群 2 无需审核加群  3
     */
    @ApiModelProperty(value="加群方式;1 审核加群 2 无需审核加群  3")
    private Short joinWay;

    /**
     * 是否允许设置管理员;true 允许 false 不允许
     */
    @ApiModelProperty(value="是否允许设置管理员;true 允许 false 不允许")
    private Boolean allowManager;

    /**
     * 背景
     */
    @ApiModelProperty(value="背景")
    private String background;

    /**
     * 是否展示群昵称
     */
    @ApiModelProperty(value="是否展示群昵称")
    private Boolean showNick;

    /**
     * 成员保护模式
     */
    @ApiModelProperty(value="成员保护模式")
    private Boolean memberProtected;

    /**
     * 群成员禁言
     */
    @ApiModelProperty(value="群成员禁言")
    private Boolean memberDisableChat;

    /**
     * 禁止加入
     */
    @ApiModelProperty(value="禁止加入")
    private Boolean joinDisable;

    /**
     * 禁止群成员加群主
     */
    @ApiModelProperty(value="禁止群成员加群主")
    private Boolean disableAddMaster;

    /**
     * 加群审核
     */
    @ApiModelProperty(value="加群审核")
    private Boolean joinVerify;

    /**
     * 管理员权限加群审核;加群审核 禁言 群成员保护 删除成员 修改群名
     */
    @ApiModelProperty(value="管理员权限加群审核;加群审核 禁言 群成员保护 删除成员 修改群名")
    private Boolean managerJoinVerify;

    /**
     * 管理员权限 禁言
     */
    @ApiModelProperty(value="管理员权限 禁言")
    private Boolean managerDisable;

    /**
     * 管理员权限 群成员保护
     */
    @ApiModelProperty(value="管理员权限 群成员保护")
    private Boolean managerMemberProtected;

    /**
     * 管理员权限删除成员
     */
    @ApiModelProperty(value="管理员权限删除成员")
    private Boolean managerMemberDel;

    /**
     * 管理员权限群重命名
     */
    @ApiModelProperty(value="管理员权限群重命名")
    private Boolean managerGroupRename;

    /**
     * 聊天 类型文字;文字 图片 文件 连接 语音 视频
     */
    @ApiModelProperty(value="聊天 类型文字;文字 图片 文件 连接 语音 视频")
    private Boolean chatText;

    /**
     * 聊天 图片
     */
    @ApiModelProperty(value="聊天 图片")
    private Boolean chatPicture;

    /**
     * 聊天 文件
     */
    @ApiModelProperty(value="聊天 文件")
    private Boolean chatFile;

    /**
     * 聊天 链接
     */
    @ApiModelProperty(value="聊天 链接")
    private Boolean chatHref;

    /**
     * 聊天 语音
     */
    @ApiModelProperty(value="聊天 语音")
    private Boolean chatVoice;

    /**
     * 聊天 视频
     */
    @ApiModelProperty(value="聊天 视频")
    private Boolean chatVideo;

    /**
     * 租户号
     */
    @ApiModelProperty(value="租户号")
    private String tenantId;

    /**
     * 乐观锁
     */
    @ApiModelProperty(value="乐观锁")
    private String revision;

    /**
     * 创建人
     */
    @ApiModelProperty(value="创建人")
    private Long createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty(value="创建时间")
    private Date createTime;

    /**
     * 更新人
     */
    @ApiModelProperty(value="更新人")
    private Long lastUpdateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private Date lastUpdateTime;

    private static final long serialVersionUID = 1L;
}